﻿#region Copyright(C) 2012 NCS Pte. Ltd. All rights reserved.

// ==================================================================================================
// Copyright(C) 2012 NCS Pte. Ltd. All rights reserved.
//
// SYSTEM NAME	:   iConnect.Azure Application Framework
// COMPONENT ID :   NCS.IConnect.Azure.Diagnostics.AzureStorage.ICloudTableClient
// COMPONENT DESC:  	
//
// CREATED DATE/BY:  08 June 2012 / Lu Ya Ming
//
// REVISION HISTORY:	
// DATE/BY			SR#/CS/PM#/OTHERS		DESCRIPTION OF CHANGE
// ==================================================================================================

#endregion

namespace NCS.IConnect.Cloud.Core.AzureStorage
{
    /// <summary>
    /// The interface of cloud table client.
    /// </summary>
    public interface ICloudTableClient
    {
        /// <summary>
        /// Gets the data service context.
        /// </summary>
        /// <returns></returns>
        ITableServiceContext GetDataServiceContext();

        /// <summary>
        /// Creates the table if not exist.
        /// </summary>
        /// <param name="tableName">Name of the table.</param>
        void CreateTableIfNotExist(string tableName);

        /// <summary>
        /// Deletes the table if exist.
        /// </summary>
        /// <param name="tableName">Name of the table.</param>
        void DeleteTableIfExist(string tableName);

        /// <summary>
        /// Doeses the table exist.
        /// </summary>
        /// <param name="tableName">Name of the table.</param>
        /// <returns></returns>
        bool DoesTableExist(string tableName);
    }
}
